本发明公开了一种在集成电路测试中用于缩短硬件木马的验证时间的方法,其中的专用结构包含一个门单元和一个多路开关;多路开关中具有测试输入信号TI和木马测试模式使能信号EN,门单元用于与被测集成电路中的目标节点进行逻辑粘合,门单元的类型由该节点出现0和1的概率决定;插入专用结构MFTD的过程是:首先,设定一个概率阈值P
1.一种在集成电路测试中用于缩短硬件木马的验证时间的方法,其特征在于:包括以下步骤:在被测集成电路中插入一用于硬件木马检测的专用结构MFTD,该专用结构包含一个门单元和一个多路开关;所述多路开关中具有测试输入信号TI和木马测试模式使能信号EN,所述门单元用于与被测集成电路中的目标节点进行逻辑粘合,所述门单元的类型由该节点出现0和1的概率决定;若目标节点满足P
0<<P
1,且在N个时钟周期内有N
1个周期出现了逻辑1,则该节点的翻转概率P
C为:
P C = P 0 • P 1 = ( 1 - N 1 N ) • N 1 N - - - ( 1 ) ]]>公式(1)中,P
0是目标节点出现逻辑0的概率;P
1是目标节点出现逻辑1的概率;由多路开关引入的测试输入信号TI将与被测集成电路中的节点做与运算;当木马测试模式使能信号EN不使能时,被测集成电路处于正常工作模式;当木马测试模式使能信号EN使能时,被测集成电路进入木马检测模式,由于测试输入信号TI的作用,该节点的翻转概率变为P
C′:
P C ′ = P 0 ′ • P 1 ′ = [ 1 - ( N 1 N • P TI 1 ) ] • ( N 1 N • P TI 1 ) - - - ( 2 ) ]]>公式(2)中,P
0′是同目标节点进行逻辑粘合的逻辑门输出端出现逻辑0的概率;P
1′是同目标节点进行逻辑粘合的逻辑门输出端出现逻辑1的概率;P
TI1是测试输入信号TI出现1的概率,将公式(2)和公式(1)相减,得:
P C ′ - P C = ( 1 - N 1 N • P TI 1 ) • N 1 N • P TI 1 - ( 1 - N 1 N ) • N 1 N - - - ( 3 ) ]]>由于P
0<<P
1,故N
1≈N,因此,公式(3)可化简为:
P C ′ - P C = P TI 1 • ( 1 - P TI 1 ) , ]]>其中P
TI1>0xa0xa0xa0xa0(4)至此,通过该节点的翻转概率的增加缩短了硬件木马的验证时间;同理,若目标节点满足P
0>>P
1,则通过插入用于硬件木马检测的专用结构MFTD,使目标节点的翻转概率增加,其中,粘合运算为或门运算;插入用于硬件木马检测的专用结构MFTD的过程是:首先,根据集成电路芯片面积的设计要求和木马检测效率之间的关系设定一个概率阈值P
th,将被测集成电路所有节点进行分类,分为翻转概率大于P
th的节点和翻转概率小于P
th的节点;然后,循环选择目标节点进行用于硬件木马检测的专用结构MFTD的插入操作,直到所有节点的翻转概率均大于P
th为止。
技术领域本发明涉及一种硬件木马检测的专用结构,尤其涉及一种在集成电路测试中用于硬件木马检测的专用结构。
背景技术随着集成电路技术的发展和信息系统的智能化,集成电路的功能越来越复杂,芯片面积越来越大,信息安全问题越来越突出,硬件木马导致的信息泄露与攻击屡见报道。如何检测、识别与防护硬件木马成为研究热点。与利用计算机软件系统漏洞侵入窃取信息的病毒程序,即软件木马不同,硬件木马是指在集成电路芯片设计或制造过程中对电路的恶意修改或植入,使电路在某些条件下失效,或从芯片中窃取信息,如密钥、敏感信息等。一旦芯片内被恶意植入木马,那么不仅增大了信息泄露的风险,还会受制于人,随时可能遭到攻击、破坏,乃至瘫痪。据统计2011年集成电路的进口总额已超过石油,我国信息系统所用的集成电路产品绝大部分依赖进口,由于目前尚不具备对进口芯片进行检测的有效手段,硬件木马已经成为我国信息领域的一个重大的安全隐患。芯片中的硬件木马可存在于系统的控制芯片和存储器等位置中,杀毒软件只能查找、清除存在于硬盘和内存中的电脑(软件)木马病毒,但硬件木马由于其本身的特殊性,在杀毒软件监测范围以外,无法查找、清除。例如:向计算机、打印机、手机等电子设备植入的木马,由于其内部都具有集成度很高的SoC芯片和大容量的存储器,木马可以在用户不知情的情况下将重要信息存储到某个普通用户无法访问的内部存储器中,利用国际互联网、移动通讯网络、内部网络以及用户对设备进行维修、元件更换的时候,将这些重要信息读取出来。甚至可以在内部核心芯片嵌入射频模块,通过天线将窃取到的各种文件信息变成射频信号进行发射传输。除了这种监听信息的木马外,还有一些木马会在感知到一定的触发条件后被激活使电路失效,导致电子设备发生故障,停止工作。因此,集成电路测试已经成为集成电路整个制造流程中极为关键的一步。近年来随着集成电路的飞速发展,花在集成电路测试上的时间约占到了集成电路整个设计周期的一半。设计周期的长短将直接影响集成电路的成本和产品的市场竞争力。在保证产品安全可靠的同时还要保持住产品的市场竞争力,要解决的关键问题是能够快速地验证芯片中是否被植入硬件木马。现有技术中已有人提出了在集成电路中加速度和罕见向量序列混合激活型硬件木马的无损检出方法,即为硬件木马的测试产生并施加罕见的向量序列集,通过监测电路特性参数和功能作用异常来检测硬件木马。这种检测方法能够有效的检测出部分硬件木马,但是这种遍历测试向量的方法将会使测试周期过长(参见:(1)R.S.Chakraborty;S.Bhunia;“Securityxa0againstxa0Hardwarexa0Trojanxa0throughxa0axa0Novelxa0Applicationxa0ofxa0Designxa0Obfuscation”,IEEE/ACMxa0Internationalxa0Conferencexa0onxa0Computer-Aidedxa0Designxa02009Page(s):113-116;(2)《基于旁路信号分析的集成电路芯片硬件木马检测》赵崇征,邓高明,赵强;微电子学与计算机,2011年第28卷第11期;(3)《硬件木马综述》刘华峰,罗宏伟,王立纬;微电子学,2011年第41卷第5期)。
发明内容针对上述现有技术,本发明提供一种在集成电路测试中用于缩短硬件木马的验证时间的方法,主要是通过在集成电路设计阶段插入硬件木马检测专用结构(MFTD),可以有效提高测试中硬件木马的激活程度,从而缩短硬件木马的验证时间。为了解决上述技术问题,本发明一种在集成电路测试中用于缩短硬件木马的验证时间的方法,包括以下步骤:在被测集成电路中插入一用于硬件木马检测的专用结构,该专用结构包含一个门单元和一个多路开关;所述多路开关中具有测试输入信号TI和木马测试模式使能信号EN,所述门单元用于与被测集成电路中的目标节点进行逻辑粘合,所述门单元的类型由该节点出现0和1的概率决定;若目标节点满足P
0<<P
1,且在N个时钟周期内有N
1个周期出现了逻辑1,则该节点的翻转概率P
C为:
P C = P 0 · P 1 = ( 1 - N 1 N ) · N 1 N - - - ( 1 ) ]]>公式(1)中,P
0是目标节点出现逻辑0的概率;P
1是目标节点出现逻辑1的概率;通过由多路开关引入的测试输入信号TI将与被测集成电路中的节点做与运算;当木马测试模式使能信号EN不使能时,被测集成电路处于正常工作模式;当木马测试模式使能信号端EN使能时,被测集成电路进入木马检测模式,由于测试输入信号TI的作用,该节点的翻转概率变为P
C":
P C ′ = P 0 ′ · P 1 ′ = [ 1 - ( N 1 N · P TI 1 ) ] · ( N 1 N · P TI 1 ) - - - ( 2 ) ]]>公式(2)中,:P
0"是同目标节点进行逻辑粘合的逻辑门输出端出现逻辑0的概率;p
1"是同目标节点进行逻辑粘合的逻辑门输出端出现逻辑1的概率;P
TI1是测试输入信号TI出现1的概率,将公式(2)和公式(1)相减,得:
P C ′ - P C = ( 1 - N 1 N · P TI 1 ) · N 1 N · P TI 1 - ( 1 - N 1 N ) · N 1 N - - - ( 3 ) ]]>由于P
0<<P
1,故N
1≈N,因此,公式(3)可化简为:
P C ′ - P C = P TI 1 · ( 1 - P TI 1 ) , ]]>其中
P TI 1 > 0 - - - ( 4 ) ]]>至此,通过该节点的翻转概率的增加缩短了硬件木马的验证时间;同理,若目标节点满足P
0>>P
1,则通过插入用于硬件木马检测的专用结构MFTD,使目标节点的翻转概率增加,需要注意的是此时插入的MFTD结构中的粘合运算为或运算(门单元为或门);插入用于硬件木马检测的专用结构MFTD的过程是:首先,根据集成电路芯片面积的设计要求和木马检测效率之间的关系设定一个概率阈值P
th(设定的概率阈值P
th越高,即木马的检测效率越高,则插入MFTD结构所带来的面积开销越大);将被测集成电路所有节点进行分类,分为翻转概率大于P
th的节点和翻转概率小于P
th的节点;然后,循环选择目标节点进行用于硬件木马检测的专用结构MFTD的插入操作,直到所有节点的翻转概率均大于P
th为止。与现有技术相比,本发明的有益效果是:硬件木马是近年来出现的危害信息安全的重大隐患,其检测技术在国际上也是近几年才开展起来的,传统的硬件木马检测都是基于失效分析,其缺点是成本高、效率低,同时由于是一种物理破坏性检测,其只适用于小批量的抽样检测。通过在电路设计阶段选择性的插入MFTD结构,能够有效地提高硬件木马检测效率,而其代价只是使芯片面积略微增加。
附图说明图1是本发明中硬件木马检测专用结构(MFTD)图;其中:(a)P
0<<P
1;(b)P
0>>P
1;图2是插入MFTD结构前后电路输出端翻转概率对比图,其中,(a)是插入MFTD前输出端发生翻转的概率;(b)是插入MFTD输出端发生翻转的概率;图3是MFTD结构插入流程图。
具体实施方式下面结合具体实施方式对本发明作进一步详细地描述。硬件木马是指在集成电路设计与制造过程中被恶意篡改或植入的微小破坏电路,这种电路极具隐蔽性,在大多数情况下处于静默状态,只在特定的条件或电路状态下才会被激活。和被测集成电路相比,木马电路的面积非常小,在静默状态下对原始电路的延时和功耗等旁路信息影响较小,只有当木马电路达到一定激活程度时才能通过观察旁路信号异常判断芯片是否被植入硬件木马。因此,木马的激活时间将直接影响硬件木马的验证时间。木马的激活程度主要受木马输入端逻辑电路的翻转概率控制。电路中某个节点的翻转概率可以很好地反映电路的特性,因为它既考虑了门单元的功能性,又考虑了它们之间的互连关系,并能够很好的估计节点发生翻转的时间。假定某节点出现逻辑0和逻辑1的概率分别为P
0和P
1,则该节点发生逻辑翻转的概率为P
C=P
0×P
1,显然当P
0=P
1时翻转概率取最大值。依据离散随机分布概率理论可知该节点发生一次翻转平均所需时钟周期为(P
C-1-1)。木马输入端的翻转概率越大,则木马的被激活的概率越大,所需的验证时间也就越短。在不考虑各门单元之间的互联时,内部节点的翻转概率取决于基本输入和触发器的数量。基本的输入和触发器决定了电路网络的深度,也就是电路中基本输入或触发器与内部节点之间的最短路径。因此,通过增加外部信号对内部电路的直接作用关系,可以提高电路的可控性。基于此,本发明提出了一种在集成电路测试中用于缩短硬件木马的验证时间的方法,具体过程如图3所示:该程序首先设定一个概率阈值(P
th),即被测集成电路激活程度的设定,较大的P
th会带来更多的面积开销,因此这个值需要在面积和木马检测效率之间进行折中设定。在设定好概率阈值后,将被测集成电路所有节点进行分类,分为翻转概率大于P
th的节点和小于P
th的节点。然后,循环选择目标节点进行MFTD插入操作,直到所有节点的翻转概率均大于P
th为止。在被测集成电路中插入一用于硬件木马检测的专用结构(MFTD结构),该专用结构包含一个门单元和一个多路开关;所述多路开关中具有测试输入信号TI和木马测试模式使能信号EN,所述门单元用于与被测集成电路中的目标节点进行逻辑粘合,所述门单元的类型由该目标节点出现0和1的概率决定;若目标节点满足P
0<<P
1,且在N个时钟周期内有N
1个周期出现了逻辑1,则依据翻转概率理论可知该节点的翻转概率P
C为:
P C = P 0 · P 1 = ( 1 - N 1 N ) · N 1 N - - - ( 1 ) ]]>公式(1)中,P
0是目标节点出现逻辑0的概率;P
1是目标节点出现逻辑1的概率;此时插入如图1(a)所示的MFTD结构,可以使目标节点翻转概率增加,即通过由多路开关引入的测试输入信号TI将与被测集成电路中的节点做与运算;当木马测试模式使能信号EN不使能时,被测集成电路处于正常工作模式;当木马测试模式使能信号端EN使能时,被测集成电路进入木马检测模式,由于测试输入信号TI的作用,该节点的翻转概率变为P
C":
P C ′ = P 0 ′ · P 1 ′ = [ 1 - ( N 1 N · P TI 1 ) ] · ( N 1 N · P TI 1 ) - - - ( 2 ) ]]>公式(2)中,:P
0"是同目标节点进行逻辑粘合的逻辑门输出端出现逻辑0的概率;p
1":是同目标节点进行逻辑粘合的逻辑门输出端出现逻辑1的概率;P
TI1是测试输入信号TI出现1的概率,将公式(2)和公式(1)相减,得:
P C ′ - P C = ( 1 - N 1 N · P TI 1 ) · N 1 N · P TI 1 - ( 1 - N 1 N ) · N 1 N - - - ( 3 ) ]]>由于P
0<<P
1,故N
1≈N,因此,公式(3)可化简为:
P C ′ - P C = P TI 1 · ( 1 - P TI 1 ) , ]]>其中
P TI 1 > 0 - - - ( 4 ) ]]>至此,通过该节点的翻转概率的增加缩短了硬件木马的验证时间;同理可得,当P
0>>P
1时,插入图1(b)所示的MFTD结构同样可以使目标节点翻转概率增加,需要注意的是此时插入的MFTD结构中的粘合运算为或运算(门单元为或门);插入用于硬件木马检测的专用结构MFTD的过程是:首先,根据集成电路芯片面积的设计要求和木马检测效率之间的关系设定一个概率阈值P
th(设定的该概率阈值P
th越高,即木马的检测效率越高,则插入MFTD结构所带来的面积开销越大);将被测集成电路所有节点进行分类,分为翻转概率大于P
th的节点和翻转概率小于P
th的节点;然后,循环选择目标节点进行用于硬件木马检测的专用结构MFTD的插入操作,直到所有节点的翻转概率均大于P
th为止。图2示出了一种简单的组合逻辑电路插入MFTD前后输出端逻辑翻转概率对比图。因此,通过插入MFTD可以有效提高木马逻辑锥中节点的翻转概率,增加木马触发条件出现的概率,缩短木马的激活时间。如果木马电路被完全激活,将会影响到电路的功能或输出从而很容易就被检测出来。在木马部分激活的情况下,瞬态功耗分析或电磁分析的方法则变得更加有效。实施例:在完成芯片基本功能电路设计工作后,执行MFTD结构的插入操作,该操作首先设定一个概率阈值,即被测集成电路激活程度的设定,较大的概率阈值P
th会带来更多的面积开销,因此这个值需要在面积和木马检测效率之间进行折中设定。在设定好概率阈值后,将被测集成电路所有节点进行分类,分为翻转概率大于P
th的节点和小于P
th的节点。然后,循环选择目标节点进行MFTD插入操作,直到所有节点的翻转概率均大于P
th为止。如图3所示,具体实施过程如下:(1)读入当前设计并设定概率阈值P
th;(2)计算各节点的翻转概率,依据设定好的概率阈值将所有节点划分为两个数组:1翻转概率大于P
th的数组H,2翻转概率小于P
th的数组L;(3)统计翻转概率小于P
th的节点数,记为N
L,判断N
L是否为0,如果为0,即所有节点翻转概率大于P
th,直接输出最终设计,反之顺序执行;(4)选择目标节点,由于翻转概率略大于P
th的节点能够直接影响到与其相连的门单元输出端的翻转概率,因此这里程序会取出数组H(翻转概率大于Pth的节点集合)中翻转概率最小的节点作为目标节点;(5)根据目标节点处P
0和P
1的大小关系选择MFTD结构中门单元类型,当P
0>P
1时,返回MUX-OR,当P
0<P
1时,返回MUX-AND;(6)程序根据第(5)步返回的结果选择MFTD结构并执行插入操作;(7)将插入MFTD后的电路更新为当前设计,跳到第(2)步循环执行,直到所有节点翻转概率大于P
th。尽管上面结合图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以作出很多变形,这些均属于本发明的保护之内。